package com.zhuang.jdk8.lambda;

import java.util.function.Predicate;

public class DemoPredicate {

	public static void main(String[] args) {
		test((String str) -> {
			// 判断是否包含W
			return str.contains("W");
		}, (String str) -> {
			// 判断是否包含H
			return str.contains("H");
		});
	}

	// 对某种类型的数据进行判断，从而的到一个boolean，这时可以使用Predicate接口
	public static void test(Predicate<String> p1, Predicate<String> p2) {
		String str = "Hello orld";
		boolean b = p1.and(p2).test(str);
		if (b) {
			System.out.println("既包含W，也包含H");
		}

		// 包含H或W
		boolean b1 = p1.or(p2).test(str);
		if (b1) {
			System.out.println("包含W或者H");
		}

		boolean b2 = p1.negate().test("ello W");
		if (b2) {
			System.out.println("不包含H");
		}
	}
}
